package cn.edu.jxust.core.domain.repository;

import cn.edu.jxust.common.domain.entity.Role;
import cn.edu.jxust.common.domain.dto.RoleVo;
import cn.edu.jxust.common.response.Result;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author QiuKangming
 * @since 2020-06-29
 */
public interface RoleService extends IService<Role> {

    /**
     * 修改角色信息
     * @param roleVo 角色视图对象
     * @return boolean
     */
    Result modifyRoleInfo(RoleVo roleVo);

    /**
     * 获取当前角色可操作的角色 id, 超级管理员全部返回
     * @param roleId 角色id号
     * @return List<Role>
     */
    List<Role> getRoles(Integer roleId);

    /**
     * 获取当前角色可操作的角色 id, 超级管理员全部返回, 其他逐级返回
     * @param roleId 角色id号
     * @return List<Integer>
     */
    List<Integer> getRoleIds(Integer roleId);

    /**
     * 根据角色id获取角色对象
     * @param roleId 角色id号
     * @return Role
     */
    Role getRole(Integer roleId);

    /**
     * 通过角色id获取角色名称
     * @param roleId 角色id号
     * @return String
     */
    String getRoleNameById(Integer roleId);

}
